home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Freeware / Gobby 0.4.7 / gobby-0.4.7.exe / {app} / share / gtksourceview-2.0 / language-specs / verilog.lang < prev    next >
Extensible Markup Language  |  2008-09-09  |  8KB  |  244 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3.  
  4.  Author: Paolo Borelli <pborelli@gnome.org>
  5.  Copyright (C) 2003-2007 Paolo Borelli
  6.  
  7.  This library is free software; you can redistribute it and/or
  8.  modify it under the terms of the GNU Library General Public
  9.  License as published by the Free Software Foundation; either
  10.  version 2 of the License, or (at your option) any later version.
  11.  
  12.  This library is distributed in the hope that it will be useful,
  13.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15.  Library General Public License for more details.
  16.  
  17.  You should have received a copy of the GNU Library General Public
  18.  License along with this library; if not, write to the
  19.  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  20.  Boston, MA 02111-1307, USA.
  21.  
  22. -->
  23. <language id="verilog" _name="Verilog" version="2.0" _section="Sources">
  24.   <metadata>
  25.     <property name="mimetypes">text/x-verilog-src</property>
  26.     <property name="globs">*.v</property>
  27.     <property name="line-comment-start">//</property>
  28.     <property name="block-comment-start">/*</property>
  29.     <property name="block-comment-end">*/</property>
  30.   </metadata>
  31.  
  32.   <styles>
  33.     <style id="comment" _name="Comment" map-to="def:comment"/>
  34.     <style id="error" _name="Error" map-to="def:error"/>
  35.     <style id="compiler-directive" _name="Compiler Directive" map-to="def:preprocessor"/>
  36.     <style id="keyword" _name="Keyword" map-to="def:keyword"/>
  37.     <style id="gate" _name="Gate" map-to="def:keyword"/>
  38.     <style id="type" _name="Type" map-to="def:type"/>
  39.     <style id="base-n-integer" _name="Base-N Integer" map-to="def:base-n-integer"/>
  40.   </styles>
  41.  
  42.   <definitions>
  43.  
  44.     <context id="line-comment" style-ref="comment" end-at-line-end="true">
  45.       <start>//</start>
  46.       <include>
  47.         <context ref="def:in-line-comment"/>
  48.       </include>
  49.     </context>
  50.  
  51.     <context id="block-comment" style-ref="comment">
  52.       <start>/\*</start>
  53.       <end>\*/</end>
  54.       <include>
  55.         <context ref="def:in-comment"/>
  56.       </include>
  57.     </context>
  58.  
  59.     <context id="close-comment-outside-comment" style-ref="error">
  60.       <match>\*/(?!\*)</match>
  61.     </context>
  62.  
  63.     <context id="compiler-directive" style-ref="compiler-directive">
  64.       <prefix>`</prefix>
  65.       <keyword>celldefine</keyword>
  66.       <keyword>default_nettype</keyword>
  67.       <keyword>define</keyword>
  68.       <keyword>else</keyword>
  69.       <keyword>elsif</keyword>
  70.       <keyword>endcelldefine</keyword>
  71.       <keyword>endif</keyword>
  72.       <keyword>ifdef</keyword>
  73.       <keyword>ifndef</keyword>
  74.       <keyword>include</keyword>
  75.       <keyword>line</keyword>
  76.       <keyword>nounconnected_drive</keyword>
  77.       <keyword>resetall</keyword>
  78.       <keyword>timescale</keyword>
  79.       <keyword>unconnected_drive</keyword>
  80.       <keyword>undef</keyword>
  81.     </context>
  82.  
  83.     <context id="keywords" style-ref="keyword">
  84.       <keyword>always</keyword>
  85.       <keyword>assign</keyword>
  86.       <keyword>begin</keyword>
  87.       <keyword>case</keyword>
  88.       <keyword>casex</keyword>
  89.       <keyword>casez</keyword>
  90.       <keyword>deassign</keyword>
  91.       <keyword>default</keyword>
  92.       <keyword>defparam</keyword>
  93.       <keyword>disable</keyword>
  94.       <keyword>edge</keyword>
  95.       <keyword>else</keyword>
  96.       <keyword>end</keyword>
  97.       <keyword>endcase</keyword>
  98.       <keyword>endmodule</keyword>
  99.       <keyword>endfunction</keyword>
  100.       <keyword>endprimitive</keyword>
  101.       <keyword>endspecify</keyword>
  102.       <keyword>endtable</keyword>
  103.       <keyword>endtask</keyword>
  104.       <keyword>for</keyword>
  105.       <keyword>force</keyword>
  106.       <keyword>forever</keyword>
  107.       <keyword>for</keyword>
  108.       <keyword>function</keyword>
  109.       <keyword>highz0</keyword>
  110.       <keyword>highz1</keyword>
  111.       <keyword>if</keyword>
  112.       <keyword>ifnone</keyword>
  113.       <keyword>initial</keyword>
  114.       <keyword>join</keyword>
  115.       <keyword>large</keyword>
  116.       <keyword>macromodule</keyword>
  117.       <keyword>medium</keyword>
  118.       <keyword>module</keyword>
  119.       <keyword>negedge</keyword>
  120.       <keyword>posedge</keyword>
  121.       <keyword>primitive</keyword>
  122.       <keyword>pull0</keyword>
  123.       <keyword>pull1</keyword>
  124.       <keyword>release</keyword>
  125.       <keyword>repeat</keyword>
  126.       <keyword>small</keyword>
  127.       <keyword>specify</keyword>
  128.       <keyword>specparam</keyword>
  129.       <keyword>strong0</keyword>
  130.       <keyword>strong1</keyword>
  131.       <keyword>task</keyword>
  132.       <keyword>wait</keyword>
  133.       <keyword>weak0</keyword>
  134.       <keyword>weak1</keyword>
  135.       <keyword>while</keyword>
  136.     </context>
  137.  
  138.     <context id="gates" style-ref="gate">
  139.       <keyword>and</keyword>
  140.       <keyword>buf</keyword>
  141.       <keyword>bufif0</keyword>
  142.       <keyword>bufif1</keyword>
  143.       <keyword>cmos</keyword>
  144.       <keyword>nand</keyword>
  145.       <keyword>nmos</keyword>
  146.       <keyword>nor</keyword>
  147.       <keyword>not</keyword>
  148.       <keyword>notif0</keyword>
  149.       <keyword>notif1</keyword>
  150.       <keyword>or</keyword>
  151.       <keyword>pmos</keyword>
  152.       <keyword>pullup</keyword>
  153.       <keyword>pulldown</keyword>
  154.       <keyword>rcmos</keyword>
  155.       <keyword>rnmos</keyword>
  156.       <keyword>rpmos</keyword>
  157.       <keyword>rtran</keyword>
  158.       <keyword>rtranif0</keyword>
  159.       <keyword>rtranif1</keyword>
  160.       <keyword>tran</keyword>
  161.       <keyword>tranif0</keyword>
  162.       <keyword>tranif1</keyword>
  163.       <keyword>xnor</keyword>
  164.       <keyword>xor</keyword>
  165.     </context>
  166.  
  167.     <context id="types" style-ref="type">
  168.       <keyword>event</keyword>
  169.       <keyword>inout</keyword>
  170.       <keyword>input</keyword>
  171.       <keyword>integer</keyword>
  172.       <keyword>output</keyword>
  173.       <keyword>parameter</keyword>
  174.       <keyword>reg</keyword>
  175.       <keyword>real</keyword>
  176.       <keyword>realtime</keyword>
  177.       <keyword>scalared</keyword>
  178.       <keyword>supply0</keyword>
  179.       <keyword>supply1</keyword>
  180.       <keyword>time</keyword>
  181.       <keyword>tri</keyword>
  182.       <keyword>tri0</keyword>
  183.       <keyword>tri1</keyword>
  184.       <keyword>triand</keyword>
  185.       <keyword>trior</keyword>
  186.       <keyword>trireg</keyword>
  187.       <keyword>vectored</keyword>
  188.       <keyword>wand</keyword>
  189.       <keyword>wire</keyword>
  190.       <keyword>wor</keyword>
  191.     </context>
  192.  
  193.     <context id="binary-number" style-ref="base-n-integer">
  194.       <match extended="true">
  195.         (?<![\w\.])
  196.         [1-9][0-9]*'[bB][0-1_xXzZ?]+
  197.         (?![\w\.])
  198.       </match>
  199.     </context>
  200.  
  201.     <context id="octal-number" style-ref="base-n-integer">
  202.       <match extended="true">
  203.         (?<![\w\.])
  204.         [1-9][0-9]*'[oO][0-7_xXzZ?]+
  205.         (?![\w\.])
  206.       </match>
  207.     </context>
  208.  
  209.     <context id="decimal-number" style-ref="base-n-integer">
  210.       <match extended="true">
  211.         (?<![\w\.])
  212.         [1-9][0-9]*'[dD][0-9_xXzZ?]+
  213.         (?![\w\.])
  214.       </match>
  215.     </context>
  216.  
  217.     <context id="hexadecimal-number" style-ref="base-n-integer">
  218.       <match extended="true">
  219.         (?<![\w\.])
  220.         [1-9][0-9]*'[hH][0-9a-fA-F_xXzZ?]+
  221.         (?![\w\.])
  222.       </match>
  223.     </context>
  224.  
  225.     <context id="verilog">
  226.       <include>
  227.         <context ref="line-comment"/>
  228.         <context ref="block-comment"/>
  229.         <context ref="close-comment-outside-comment"/>
  230.         <context ref="compiler-directive"/>
  231.         <context ref="keywords"/>
  232.         <context ref="gates"/>
  233.         <context ref="types"/>
  234.         <context ref="binary-number"/>
  235.         <context ref="octal-number"/>
  236.         <context ref="decimal-number"/>
  237.         <context ref="hexadecimal-number"/>
  238.       </include>
  239.     </context>
  240.  
  241.   </definitions>
  242.  
  243. </language>
  244.